package com.ruoyi.tzai.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.tzai.domain.UserFavorite;

/**
 * 用户收藏Mapper接口
 * 
 * @author tzai
 * @date 2025-10-27
 */
public interface UserFavoriteMapper 
{
    /**
     * 查询用户收藏
     * 
     * @param favoriteId 用户收藏主键
     * @return 用户收藏
     */
    public UserFavorite selectUserFavoriteByFavoriteId(Long favoriteId);

    /**
     * 根据用户ID和文章ID查询用户收藏
     * 
     * @param userId 用户ID
     * @param articleId 文章ID
     * @return 用户收藏
     */
    public UserFavorite selectUserFavoriteByUserIdAndArticleId(@Param("userId") Long userId, @Param("articleId") Long articleId);

    /**
     * 查询用户收藏列表
     * 
     * @param userFavorite 用户收藏
     * @return 用户收藏集合
     */
    public List<UserFavorite> selectUserFavoriteList(UserFavorite userFavorite);

    /**
     * 新增用户收藏
     * 
     * @param userFavorite 用户收藏
     * @return 结果
     */
    public int insertUserFavorite(UserFavorite userFavorite);

    /**
     * 删除用户收藏
     * 
     * @param favoriteId 用户收藏主键
     * @return 结果
     */
    public int deleteUserFavoriteByFavoriteId(Long favoriteId);

    /**
     * 根据用户ID和文章ID删除用户收藏
     * 
     * @param userId 用户ID
     * @param articleId 文章ID
     * @return 结果
     */
    public int deleteUserFavoriteByUserIdAndArticleId(@Param("userId") Long userId, @Param("articleId") Long articleId);

    /**
     * 批量删除用户收藏
     * 
     * @param favoriteIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserFavoriteByFavoriteIds(Long[] favoriteIds);
}

